Always updating OLE objects

Hi

We have a problem with some copy/import tools when it comes to OLE objects. Objects containing OLE:s are always updated (changes change date) when the text in an attribute is replaced, even when the new content is identical to the old. I would guess the problem is correlated with the compare problem of OLE:s.

Does anyone have an idea of what's going on and how to overcome this problem?

/Anders
a_vestlin - Wed Jun 30 03:37:28 EDT 2010

Re: Always updating OLE objects
Mathias Mamsch - Wed Jun 30 07:37:59 EDT 2010

I guess what is going on, is that DOORS will feed the OLE through the OLE API of windows before writing (and also before reading). This seems to change some data in the OLE object (which is held in memory), maybe a parent handle that is stored with it or something. In another thread we found that even if read an OLE object, close the module, reopen it again and read it again the data will change.

This means you have no chance instead of having an intelligent OLE compare mechanism that will update the OLE object only when it has changed. My experience is that this only affects "active" OLE objects like Excel sheets but not static metafiles. Therefore you could try to convert your OLEs to static metafiles.

Unfortunately I cannot offer a better solution. Regards, Mathias

Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS

Re: Always updating OLE objects
llandale - Wed Jun 30 11:44:58 EDT 2010

Majias is right. I think the issue is that these big OLE and other Windows files have large chunks of empty space in them, which gets 'populated' by whatever is in memory in those locations. While Office and Windows will not read that space, DOORS indeed does and will thus suggest the OLE has changed.

I came across this reality in a situation I cannot provide details, but at least for MS-Word files dis-abling quick-saves helped alot, and there is some chance that perhaps the OLE can be saved in such a manner that there is no such empty space.

I wonder if you can get a handle on the OLE and query its last modified Date?

At one point years ago I saved the two OLEs to two different files and then compared the lengths of the files, figuring if they had identical length then the OLEs were identical. Since that was slower than updating the object and we had a separate last modified on attribute, I abandoned that approach.

  • Louie